Conventionally, the Thin Provisioning function has been proposed as one function of a storage apparatus, and put into practical application. The Thin Provisioning function is a function of presenting, to a higher-level device (host computer), a virtual volume (this is hereinafter referred to as the “virtual volume”) as a logical volume to be used for the reading and writing of user data, and dynamically assigning, to the virtual volume, a physical storage area for actually storing the user data in accordance with the status of use of that virtual volume.
For all practical purposes, in a storage apparatus that is equipped with the Thin Provisioning function, the inside of the virtual volume is managed by being divided into a plurality of unit areas (these are hereinafter referred to as the “virtual pages”) of a predetermined size, and a storage area provided by a storage device mounted in the storage apparatus is managed as an aggregate of one or more logical storage areas referred to as pools.
Here, the storage area in the pool is managed by being divided into areas (these are hereinafter referred to as the “logical pages”) of the same size as the virtual pages. Moreover, the physical storage area provided by the storage device is also managed by being divided into areas (these are hereinafter referred to as the “physical pages”) of the same size as the logical pages. In addition, associated with each of these logical pages are respectively different physical pages in a manner of one-to-many, many-to-many, or many-to-one.
In addition, when the storage apparatus receives, from the higher-level device, a write request for writing data in a virtual page in a virtual volume to which a storage area has not yet been assigned, the storage apparatus assigns a logical page to that virtual page from a pool, and stores the write-target data in a physical page that is associated with that logical page.
According to this kind of Thin Provisioning function, there is an advantage in that the storage area in the storage apparatus can be efficiently used while presenting, to the host apparatus, a volume of a capacity that is greater than the storage area in the storage apparatus.
Moreover, in recent years, as technology that is related to the Thin Provisioning function, also proposed is a function of configuring one pool with storage areas respectively provided by a plurality of types of storage devices having different performances, measuring an access frequency in virtual page units of the virtual volume, relocating data written in a virtual page with a high access frequency to a storage area provided by a storage device with a higher performance, and relocating data written in a virtual page with a low access frequency to a storage area provided by a storage device with a lower performance (this is hereinafter referred to as the “hierarchy control function”) (refer to PTL 1).
Moreover, PTL 2 below discloses the placement of pages based on the weighted average of the respective I/O counts of a first cycle and a second cycle.